package main

import (
	"encoding/json"
	"fmt"
)

type Book struct {
	Context     string `json:"Title"`
	Publisher   string
	IspublIshed bool
	Price       float32
	Authors     []string
}

func main() {
	var book Book
	b := []byte(`{"Title":"Go语言编程","Publisher":"ituring.com.cn","IsPublished":false,"Price":9.99,"Authors":["XuShiwei","HughLv"]}`)
	// json转换
	// 假设一个JSON对象有个名为 "Foo" 的索引，要将 "Foo" 所对应的值填充到目标结构体的目标字段上
	// (1) 一个包含 Foo 标签的字段；
	// (2) 一个名为 Foo 的字段；
	// (3) 一个名为 Foo 或者 Foo 或者除了首字母其他字母不区分大小写的名为 Foo 的字段
	err := json.Unmarshal(b, &book)
	if err != nil {
		// 处理错误 ...
		return
	}
	fmt.Println(book.Context)
	fmt.Println(book.Authors)
	fmt.Println(book.IspublIshed)
}
